# class Student:
#     # 初始化方法  初始化对象的 属性
#     # 当我们的对象一被创建 我们的init方法自动执行
#     def __init__(self, name, age):
#         self.name = name
#         self.age = age
#
#     # 自定义实例方法
#     def printinfo(self):
#         print(self.name,self.age)
#         print(zhangsan.name,zhangsan.age)
#
#
#
# zhangsan = Student('张三', 18)  # 参数 实参    实例化对象
# zhangsan.printinfo()
# 创建对象的属性
# zhangsan.name = 'xxx'


# -*- coding:utf-8 -*-

# class Demo:
#     def __init__(self, width, heigth):
#         self.width = width
#         self.heigth = heigth
#
#     # 用于打印我们自定义的属性
#     # 项目中  用于返回我们自定义的属性
#     def __str__(self):
#         return f"你这个手机的宽是{self.width},高度是{self.heigth}"
#
#     # 自己去定义方法  返回我们自定义的属性值
#     # def printinfo(self):
#     #      print(f"你这个手机的宽是{self.width},高度是{self.heigth}"))
#
#
# a = Demo(10, 20)
# print(a)
# a.printinfo()  # <__main__.Demo object at 0x0000015AC0EA8FD0>
# 你这个手机的宽是10,高度是20

## del 垃圾回收机制
# del方法
class Demo:
    # python有自动垃圾回收机制   性能不是很好
    # 在所有的编程语言中 都会有垃圾回收机制  性能都不是特别好
    # 怎么去优化
    def __del__(self):  # 当由该类创建的实例对象，被删除或者说在内存中被释放，将会自动触发执行。
        print("被释放了！")


d = Demo()  # 内存消耗
print("#" * 20)
# del d  # 相当于提前执行了del方法
print("*" * 20)
